home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / Source / E / Screens / ScrollScreen.e < prev   
Text File  |  1997-12-06  |  2KB  |  61 lines

  1. /* Name:      Scroll Screen
  2. ** Author:    Paul Manias
  3. ** Copyright: DreamWorld Productions (c) 1996-1997.  Freely distributable.
  4. **
  5. ** This demo allows you to legally scroll up to 50 screens in either
  6. ** direction by setting the HBUFFER flag.  Normally we would blit blocks down
  7. ** the left and right hand side to give an impression of heaps of screens -
  8. ** see the MapEditor for this.
  9. **
  10. */
  11.  
  12. MODULE 'dpkernel','dpkernel/dpkernel','graphics/pictures','files/files'
  13. MODULE 'screens','system/register','system/modules','input/joydata'
  14. MODULE 'graphics/screens','graphics/blitter'
  15.  
  16. PROC main()
  17.   DEF screen    = NIL:PTR TO screen,
  18.       joy       = NIL:PTR TO joydata,
  19.       pic       = NIL:PTR TO picture,
  20.       scrmodule = NIL:PTR TO module,
  21.       picfile:filename
  22.  
  23.   picfile := [ ID_FILENAME, 'GMS:demos/data/PIC.Green']:filename
  24.  
  25.   IF dpkbase := OpenLibrary('GMS:libs/dpkernel.library',0)
  26.      IF (scrmodule := Init([TAGS_MODULE,NIL,
  27.          MODA_NUMBER,    MOD_SCREENS,
  28.          MODA_TABLETYPE, JMP_AMIGAE,
  29.          TAGEND], NIL))
  30.  
  31.         scrbase := scrmodule.modbase
  32.  
  33.         IF (pic := Load(picfile, ID_PICTURE))
  34.            screen := Get(ID_SCREEN)
  35.            CopyStructure(pic,screen)
  36.            screen.memptr1 := pic.bitmap.data
  37.            screen.attrib  := HSCROLL OR SBUFFER
  38.            screen.bitmap.width := screen.width+16
  39.  
  40.            IF (screen := Init(screen,NIL))
  41.               IF (joy := Init(Get(ID_JOYDATA),NIL))
  42.                  Display(screen)
  43.                  REPEAT
  44.                     Query(joy)
  45.                     screen.bmpxoffset := screen.bmpxoffset + joy.xchange
  46.                     MoveBitmap(screen)
  47.                     WaitVBL()
  48.                  UNTIL !(joy.buttons AND JD_LMB)
  49.               Free(joy)
  50.               ENDIF
  51.            ENDIF
  52.         Free(screen)
  53.         Free(pic)
  54.         ENDIF
  55.      Free(scrmodule)
  56.      ENDIF
  57.   CloseDPK()
  58.   ENDIF
  59. ENDPROC
  60.  
  61.